﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Iesi.Collections.Generic;

namespace eBookDomain
{

  public class Book
  {
    #region Properties 
    
      private Int32 _bookID;
      public virtual Int32 BookID
      {
        get { return _bookID; }
        set { _bookID = value; }
      }
      
      private string _isbn10;
      public virtual string ISBN10
      {
        get { return _isbn10; }
        set { _isbn10 = value; }
      }
      
      private string _isbn13;
      public virtual string ISBN13
      {
        get { return _isbn13; }
        set { _isbn13 = value; }
      }
      
      private string _asin;
      public virtual string ASIN
      {
        get { return _asin; }
        set { _asin = value; }
      }      
                  
      private string _deweyDecimal;
      public virtual string DeweyDecimal
      {
        get { return _deweyDecimal; }
        set { _deweyDecimal = value; }
      }                  
                  
      private string _title;
      public virtual string Title
      {
        get { return _title; }
        set { _title = value; }
      }                  

      private IList<Author> _authors = new List<Author>();
      public virtual IList<Author> Authors
      {
        get { return _authors; }
        set { _authors = value; }
      } 
                       
      private Publisher _publisher;
      public virtual Publisher Publisher 
      {
        get { return _publisher; }
        set { _publisher = value; }
      }                 
      
      private Int32? _numberOfPages;
      public virtual Int32? NumberOfPages
      {
        get { return _numberOfPages; }
        set { _numberOfPages = value; }
      }

      private string _edition;
      public virtual string Edition
      {
        get { return _edition; }
        set { _edition = value; }
      }              
                  
      private string _amazonRating;
      public virtual string AmazonRating
      {
        get { return _amazonRating; }
        set { _amazonRating = value; }
      }

      private string _editorialReview;
      public virtual string EditorialReview
      {
        get { return _editorialReview; }
        set { _editorialReview = value; }
      }

      private string _publicationDate;
      public virtual string PublicationDate
      {
        get { return _publicationDate; }
        set { _publicationDate = value; }
      }
      
      private Iesi.Collections.Generic.ISet<Link> _links = new HashedSet<Link>();
      public virtual Iesi.Collections.Generic.ISet<Link> Links
      {
        get { return _links;}
        set { _links = value;}
      }

      private string _smallImageURL;
      public virtual string SmallImageURL
      {
        get { return _smallImageURL; }
        set { _smallImageURL = value; }
      }
      
      private string _mediumImageURL;
      public virtual string MediumImageURL
      {
        get { return _mediumImageURL; }
        set { _mediumImageURL = value; }
      }
      
      private string _largeImageURL;
      public virtual string LargeImageURL
      {
        get { return _largeImageURL; }
        set { _largeImageURL = value; }
      }

      private string _filePath;
      public virtual string FilePath
      {
        get { return _filePath; }
        set { _filePath = value; }
      }

      private string _fileName;
      public virtual string FileName
      {
        get { return _fileName; }
        set { _fileName = value; }
      }
      
      private DateTime? _dateCreated;
      public virtual DateTime? DateCreated
      {
        get { return _dateCreated; }
        set { _dateCreated = value; }
      }

      private DateTime? _dateModified;
      public virtual DateTime? DateModified
      {
        get { return _dateModified; }
        set { _dateModified = value; }
      }

      private Int32 _version;
      public virtual Int32 Version
      {
        get { return _version; }
        set { _version = value; }
      }
      


    #endregion


    
  }

}
